1. Field of the Invention
This invention relates to multipathing of networked storage devices and more particularly relates to automatically verifying access to a multipathed target device while booting a computing device.
2. Description of the Related Art
Modern data storage systems typically contain data that is valuable to the storage system user. Consequently, high reliability of such data and the storage systems containing the data is a necessary feature of most computing systems. Many methods for improving the reliability of data storage systems have been developed, including redundant data storage systems incorporating methods for mirroring the data stored on separate systems, backup operations for creating emergency backup copies of data for use in case of storage system failure, and the like. In networked storage systems, the backup data, or mirrored data may be stored on separate storage devices.
For example, an application server may store application data on a Storage Area Network (“SAN”) containing a plurality of mirrored data storage devices. In this example, the application server may store data on a primary storage system, and the data may be automatically copied to a separate mirrored storage system. Alternatively, the data may be copied to a separate mirrored hard disk within the same storage system. In such an example, the data is communicated from the application server to the storage system, and between storage systems using networking configurations such as Small Computer System Interface (“SCSI”), Fibre Channel Arbitrated Loop (“FC-AL”), internet SCSI (“iSCSI”), and the like.
Another aspect of data storage system reliability is availability. Optimally, the availability of the storage system to other computing systems should remain uninterrupted. However in networked systems, constant availability is difficult to achieve. It is difficult to maintain uninterrupted access to the storage system, because the SAN typically routes data traffic through a plurality of devices before reaching the storage system. For example, data sent from an application server to a storage system may pass through multiple switches, routers, hubs, and the like before reaching the storage system and its associated storage disks. If there is a failure in any of the devices between the application server and the storage disk, the data will not be stored properly, if at all, on the storage disk. Consequently, data may be lost, or the application server may be taken off line during the failure, and the availability of the application, and integrity of the data will be impacted.
One method for preventing outages due to failures within a SAN is multipathing. As used herein, the term “multipathing” refers to the establishment and maintenance of multiple data paths between a first networked computing device and a second networked computing device. The presence of multiple data paths provides an added measure of redundancy on the data communication link between the first networked computing device and the second networked computing device. Thus, if a switch, router, or other networking component between the first networked computing device and the second networked computing device fails, the connection will not be lost. Instead, the data path will automatically switch to the path that is operational.
In typical SAN systems, the multipathing between the first and the second networked computing devices is managed by a multipathing agent that runs in the operating system of one or both of the computing devices. In typical systems, multiple data paths are not available until the operating system boots, and the multipathing agent is initiated. In such systems, the multipathing agent may control the data ports and interfaces of the machine on which it is running. These data interfaces may include SCSI, Fibre Channel, iSCSI, and the like.
One problem with the current model for implementing multiple data paths is an inability to verify connections on multiple data paths during the system boot procedure. For example, in a system using iSCSI data communications, only a predefined primary path may be verified to check the availability of a storage system or other peripheral device during the boot procedure. In current systems, the iSCSI initiator would use the iSCSI basic parameter data structure to get an Internet Protocol (“IP”) address for a target iSCSI storage device.
If the device is not reachable on the primary data path specified by the IP address, the iSCSI initiator module returns an error, and the system fails to boot properly. However, the target storage device may be operational despite the failure to connect on the primary data path. The failure may have occurred on a switch between the booting system and the target storage device. In such an example, it would be useful to verify access to the target storage device through multiple data paths. Thus, if a target storage device is unavailable on the primary data path, a redundant data path may be checked to further verify accessibility of the target device. Consequently, the iSCSI initiator would return less errors, and the system would boot properly more consistently.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that automatically verify access to a multipathed target at boot time.